import media from '@ohos.multimedia.media';
import http from '@ohos.net.http';
import router from '@system.router';
import prompt from '@system.prompt';

var counter = 5; // 倒计时计数用
var timer = null; // 时间计时
var tar=1;  // 这个决定的是当前页面状态，是获取数据前还是获取数据后，默认是1，按钮被按会变成2，数据请求函数会触发成3
//var cat=3;  // 倒计时记录时候用到的一个参数

export default {
    data: {

        // 正计时
        staticScale: 3, // 缩放级，值越大，越清晰，渲染压力越大
        cWidth: 200, // 外环宽度
        cHeight: 200,  //外环高度
        cRate: 0,  //当前进度
        lineWidth: 20, //圆环宽度
        cColor: '#86C1FF,#2B5BF9',  //进度颜色，当只有一个颜色值时为纯色进度
        bgColor: '#e9ebed',     //进度条圆环背景颜色

        url: 'http://120.46.171.116:80/yali.mp4',
        types:'Kneading',
        status:'ON',
        kneading_id:'8',
        seconds:'0',
        percentage:'100',  // 百分比
        progress: 10,
        vals11:"-",
        vals12:"-",
        vals21:"-",
        vals22:"-",
        vals31:"-",
        vals32:"-",
        vals41:"-",
        vals42:"-",
        nowDate:"",
        num:3,
        //        time:"2022-04-22 10:56:08",
        startText:"开始检测",

        returnContent:'',
        return_result: {
        },
        opacity:0,
        z_index:10000
    },

    showhintDialog(e) {
        this.$element('hintDialog').show()
    },
    sethintDialog(e) {
        this.$element('hintDialog').close()
    },

    tabChange(e){
        console.info("Tab index: " + e.index)
    },

    launch2() {
        router.push ({
            uri: 'pages/result/result',
        });
    },
    run(){
        this.num=3  // 重新赋值预备3S

        counter--;
        // tar变成2，倒计时5秒
        if (tar==2&&counter!=-1) {
            this.seconds = counter.toString();
            // 倒计时计算的过程会赋值给cat,cat为0倒计时就结束了
            //            cat = counter.toString();
            this.percentage = counter*20;  // 百分比
            if(counter==0){
                // 这个时候倒计时结束tar变成3，重新触发这个函数（应该是这么回事）
                this.startText="重新测试"
                tar=3;
            }
        } else{  //这个是tar==3时候会触发的
            this.seconds = "0";
            clearInterval(timer);
            timer = null;
            //计时结束会变成0
            //下面这个就是具体的请求数据了，请求的是服务器里传感器的数据

            //            console.info(this.Account)
            console.info(JSON.stringify({"types":this.types,"status":this.status,"kneading_id":this.kneading_id}));
            tar = 1;
            counter = 5;
            this.percentage = 100;
        }
    },

    // 重置用的tar会被重置成1，倒计时记录会归0
    remake(){
        tar=1;
        this.startText="开始检测"
        counter = 10;
    },

    get_cd(){

        let httpRequest = http.createHttp();
        // 创建一个http，里面包括发起请求、中断请求、订阅/取消订阅HTTP Response Header 事件。

        //        let url = "http://124.70.109.103:8000/hmImgInfo";
        let url = "http://120.46.171.116:8081/get_command?types="+this.types+"&status="+this.status;
        httpRequest.request(url, {
            // 注意请求方法：http.POST
            method: http.RequestMethod.POST,
        }, (err, data)=> {  // 判断是否请求成功
            if (!err) {  // 请求成功
                this.return_result = JSON.parse(data.result);  //JSON.parse(字符串)——将字符串转换成json数据格式
                console.info("获取数据data:"+this.return_result.status_code)
            } else {  // 请求失败
                this.return_result = JSON.parse(data.result);  //JSON.parse(字符串)——将字符串转换成json数据格式
                console.info("获取数据data:"+this.return_result.status_code)
                prompt.showToast({
                    message: "命令下发失败",
                    duration: 3000,
                });
            }
        })
        return this.return_result.status_code
    },

    getData(){
        let httpRequest = http.createHttp();
        // 创建一个http，里面包括发起请求、中断请求、订阅/取消订阅HTTP Response Header 事件。

        //        let url = "http://124.70.109.103:8000/hmImgInfo";
        let url = "http://120.46.171.116:8081/get_command";
        httpRequest.request(url, {
            // 注意请求方法：http.POST
            method: 'POST',
            extraData: {
                types: this.types,
                status: this.status
            },
        }, (err, data)=> {  // 判断是否请求成功
            if (!err) {  // 请求成功

                this.returnContent = JSON.parse(data.results);  //JSON.parse(字符串)——将字符串转换成json数据格式
                this.vals1 = this.returnContent[0].Kneading.num_kneading;  //使用json将province赋值给code

            } else {  // 请求失败
                var winfo = data.results;
                console.info("获取数据失败："+winfo)
                prompt.showToast({
                    message: winfo,
                    duration: 3000,
                });
            }
        })
    },

    // 设置播放器回调函数
    setCallBack(audioPlayer) {
        console.info('audio111111111111');
        audioPlayer.on('dataLoad', () => {              //设置'dataLoad'事件回调，src属性设置成功后，触发此回调
            console.info('audio set source success');
            audioPlayer.play();                           //调用play方法开始播放，触发'play'事件回调
        });
        audioPlayer.on('play', () => {                  //设置'play'事件回调
            console.info('audio play success');
        });
        audioPlayer.on('finish', () => {                //设置'finish'事件回调，播放完成触发
            console.info('audio play finish');
            audioPlayer.release();                        //audioPlayer资源被销毁
            audioPlayer = undefined;
        });
        audioPlayer.on('error', (error) => {             //设置'error'事件回调
            console.info(`audio error called, errName is ${error.name}`);
            console.info(`audio error called, errCode is ${error.code}`);
            console.info(`audio error called, errMessage is ${error.message}`);
        });
    },

    async audioPlayerDemo() {
        let audioPlayer = media.createAudioPlayer();     //创建一个音频播放实例
        this.setCallBack(audioPlayer);                   //设置事件回调
        //        let fdPath = 'fd://'
        // path路径的码流可通过"hdc file send D:\xxx\01.mp3 /data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile" 命令，将其推送到设备上
        //        let path = '/data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile/01.mp3';
        //        倒计时音频
        let fdPath = 'http://120.46.171.116/countdown.mp3'
        audioPlayer.src = fdPath; //设置src属性，并触发'dataLoad'事件回调
    },

    start_detection() {

        if(tar==1) {

            let httpRequest = http.createHttp();
            // 创建一个http，里面包括发起请求、中断请求、订阅/取消订阅HTTP Response Header 事件。

            //        let url = "http://124.70.109.103:8000/hmImgInfo";
            let url = "http://120.46.171.116:8081/get_command?types="+this.types+"&status="+this.status;

            this.showhintDialog()

            httpRequest.request(url, {
                // 注意请求方法：http.POST
                method: "POST",
            }, (err, data)=> {  // 判断是否请求成功
                if (!err) {  // 请求成功
                    prompt.showToast({
                        message: "命令下发成功",
                        duration: 2000,
                    });

                    this.return_result = JSON.parse(data.result);  //JSON.parse(字符串)——将字符串转换成json数据格式
                    console.info("获取数据data:"+this.return_result.status_code)

                    let that = this;

                    that.audioPlayerDemo()

                    // 等待检测，3S准备时间
                    let aa = setInterval(function() {
                        that.num--;
                        if(that.num==0){

                            that.sethintDialog()
                            clearInterval(aa)

                            prompt.showToast({
                                message: "开始检测",
                                duration: 2000,
                            });
                            tar=2;
                            clearInterval(timer);
                            that.seconds = counter.toString();
                            timer = setInterval(that.run, 1000);
                            that.startText="检测中..."

                            return;
                        }
                    },1000)

                } else {  // 请求失败
                    this.return_result = JSON.parse(data.result);  //JSON.parse(字符串)——将字符串转换成json数据格式
                    console.info("获取数据data:"+this.return_result.status_code)
                    prompt.showToast({
                        message: "命令下发失败",
                        duration: 3000,
                    });
                }
            })
        } else if(tar==3) {
            this.startText="开始检测"
            tar=1;
        }
        else{
            this.startText="重新检测"
        }
    },

    launch4() {
        router.push ({
            uri: 'pages/niam/niam',
        });
    },
}